import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class RandomizedSet {

    HashMap<Integer, Integer> set;
    List<Integer> list;
    public RandomizedSet() {
        set = new HashMap<>();
        list = new ArrayList<>();
    }

    public boolean insert(int val) {
        if (set.containsKey(val)) return false;
        set.put(val, list.size());
        list.add(val);
        return true;
    }

    public boolean remove(int val) {
        if (!set.containsKey(val)) return false;
        Integer index = set.get(val);
        set.remove(val);
        Integer a = list.remove(list.size() - 1);
        if (a != val) {
            list.set(index, a);
            set.put(a, index);
        }
        return true;
    }

    public int getRandom() {
        return list.get((int) (Math.random() * list.size()));
    }
}
